package bavaria.hightech.banking;

import java.io.IOException;

import bavaria.hightech.accounting.AccountingList.SortOption;
import bavaria.hightech.conditions.FixedDepositConditions.ContractPeriod;
import bavaria.hightech.exceptions.AccountDoesNotExistsException;
import bavaria.hightech.exceptions.NotEnoughMoneyException;

public interface BankCustomerSight {
	
	public Integer createGiroAccount(String name);
	
	public Money getBalance(int accountNumber);
	
	//einzahlen
	public void deposit(Money value, int accountNumber);
	
	//auszahlen
	public void payOut(Money value, int accountNumber) throws NotEnoughMoneyException, AccountDoesNotExistsException;
	
	//ueberweisen
	public void assign(Money value, int accountNumberHolder, int accountNumberAcceptor) throws NotEnoughMoneyException;
	
	public String[] getBankConditions();

	public Integer createFixedDepositAccount(String name, ContractPeriod period);
	
	public String getAccountStatement(int accountNumber);
	
	public String getAccountStatement(int accountNumber,SortOption option);
	
	public void getStatement(int accNum, String mimetype, String outputStream) throws IOException;


	
	
	
	

}
